<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <title>genie</title>
    <link rel="icon" href="../logo/genielogo.png">
</head>

</body>

    <h1>一、genie简介</h1>
    <p>genie是使用蒙特卡洛方法模拟中微子物理的现代化软件。具体用途有请罗昊同学讲解。</p>



    <h1>二、genie安装</h1>
    <p>genie的安装是比较复杂的，关键原因是genie依赖软件包比较多，而且依赖软件包之间存在相互连接的现象。</p>
    <p>例如：genie依赖于ROOT，ROOT编译的时候需要链接pythia6之后再编译。</p>
    <p>但是安装过程只要一步步来，耐心细心，解决出现的问题，就不难成功安装。</p>

    <h2>1.安装依赖包</h2>
    <p>需要的依赖包如下：</p>
    <ul>
    <li>log4cpp：记录C++程序的日志和调试</li>
    <li>GSL：GNU的科学计算库</li>
    <li>LHAPDF6：计算夸克打碎的物理过程</li>
    <li>pythia6：描述各种基本粒子相互碰撞过程</li>
    <li>libxml2：支持使用可扩展标记语言（xml）存储数据</li>
    <li>ROOT：数据分析软件</li>
    </ul>

    <p>-------以下操作均在/opt目录下-------</p>
  

    <h3>(1)安装log4cpp</h3>
    <p>下载安装包：</p>
    <p>&emsp;wget https://sourceforge.net/projects/log4cpp/files/latest/download</p>
    <p>解压：</p>
    <p>&emsp;tar  –xvf  log4cpp-1.1.3.tar.gz  </p>
    <p>规范命名：</p>
    <p>&emsp;mv log4cpp-1.1.3 log4cpp-1.1.3-src (-src表示源代码目录)</p>
    <p>&emsp;mkdir log4cpp-1.1.3                (无-src表示安装目录)</p>
    <p>编译安装：</p>
    <p>&emsp;cd ../log4cpp-1.1.3-src</p>
    <p>&emsp;./autogen.sh</p>
    <p>&emsp;./configure  --prefix=/opt/log4cpp-1.1.3</p>
    <p>&emsp;make </p>
    <p>&emsp;make install</p>

    <h3>(2)安装GSL</h3>
    <p>理论上也可以安装log4cpp的办法安装GSL，但是可以直接用apt安装(Debian、Ubuntu)</p>
    <p>&emsp;sudo apt install libgsl-dev  </p>   

    <h3>(3)安装LHAPDF6</h3>
    <p>下载安装包：</p>
    <p>&emsp;wget  https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz</p>
    <p>解压：</p>
    <p>&emsp;tar  –xvf LHAPDF-6.2.3.tar.gz </p>
    <p>规范命名：</p>
    <p>&emsp;mv LHAPDF-6.2.3 LHAPDF-6.2.3 -src </p>
    <p>&emsp;mkdir LHAPDF-6.2.3                </p>
    <p>编译安装：</p>
    <p>&emsp;cd ../ LHAPDF-6.2.3 -src</p>
    <p>&emsp;./configure  --prefix=/opt/LHAPDF-6.2.3</p>
    <p>&emsp;make </p>
    <p>&emsp;make install</p>

    <h3>(4)安装pythia6</h3>
    <p>pythia6是个相当古老的软件包，它使用Fortran77编写，在2007年已经被用C++重写的pythia8代替，但是没有办法，genie要求pythia6</p>
    <p>这里提供一个简单安装pythia6的方法：</p>
    <p>&emsp;下载：<a href="download/pythia6.zip">点击这里</a></p>
    <p>编译：</p>
    <p>&emsp;Linux:&ensp;./makePythia6.linux(按照命名来说，64位Linux应该是./makePythia6.linuxx8664，但是我用前者也可以)</p>
    <p>&emsp;macos:&ensp;./makePythia6.macosx(按照命名来说，64位macos应该是./makePythia6.macosx64，但是我两个都没试)</p>
    <p>编译之后生成：&ensp;libPythia6.so&ensp;即为需要的pythia6库文件。</p>


    <h3>(5)安装libxlm2</h3>
    <p>下载安装包：</p>
    <p>&emsp;wget  ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz</p>
    <p>解压：</p>
    <p>&emsp;tar  –xvf libxml2-2.8.0.tar.gz </p>
    <p>规范命名：</p>
    <p>&emsp;mv libxml2-2.8.0 libxml2-2.8.0-src </p>
    <p>&emsp;mkdir libxml2-2.8.0                </p>
    <p>编译安装：</p>
    <p>&emsp;cd ../ libxml2-2.8.0 -src</p>
    <p>&emsp;./configure  --prefix=/opt/libxml2-2.8.0</p>
    <p>&emsp;make </p>
    <p>&emsp;make install</p>

    <h3>(6)安装ROOT</h3>
     <p>下载安装包：</p>
    <p>&emsp;wget  https://root.cern/download/root_v6.20.04.source.tar.gz  </p>
    <p>解压：</p>
    <p>&emsp;tar  –xvf root_v6.20.04.source.tar.gz  </p>
    <p>规范命名：</p>
    <p>&emsp;mv root_v6.20.04  root-6.20.04-src</p> 
    <p>&emsp;mkdir  root-6.20.04</p> 
    <p>编译安装：</p>
    <p>&emsp;cd ../ root-6.20.04</p>
    <p>&emsp;cmake   ../ root-6.20.04-src</p>
    <p>&emsp;&emsp;-DCMAKE_INSTALL_PREFIX=/opt/root-6.20.04</p>
    <p>&emsp;&emsp;-Dbuiltin_gsl=ON  -Dmathmore=ON  -Dpythia6=ON </p>
    <p>&emsp;&emsp;-DPYTHIA6_LIBRARY=/opt/pythia6/libPythia6.so </p>
    <p>&emsp;&emsp;-DLIBXML2_INCLUDE_DIR=/opt/libxml2-2.8.0/include/libxml2</p>
    <p>&emsp;&emsp;-DLIBXML2_LIBRARY=/opt/libxml2-2.8.0/lib/libxml2.so</p>
    <p>cmake的时候需要注意gsl和mathmore要打开，XML2的路径写到哪里也需要准确。</p>
    <p>不是安装过gsl了吗？为什么这里gsl还要打开？我也不清楚，有时间可以测试gsl不打开的效果。</p>
    <p>顺利的话就可以编译安装：</p>
    <p>&emsp;make </p>
    <p>&emsp;make install</p>  
    <p>准备好电影好好享受编译过程！</p> 


    <h2>2.编译安装genie</h2>
    <p>总言：genie的安装和一般GNU软件安装方法一样，都是&emsp;./configure&&make&&make install&emsp;</p>

    <h3>(1)下载genie安装包</h3>
    <p>&emsp;git clone https://github.com/GENIE-MC/Generator.git</p>
    <p>如果下载太慢可以选择下面链接(同步于2020-4)</p>
    <p>&emsp;git clone https://gitee.com/zhaoww7/genieGenerator</p>
    <p>您也可以先把github仓库导入国内gitee仓库，然后从gitee下载</p>  
    <p>总而言之，您如果在/opt目录下载，会得到/opt/genieGenerator</p>、
    <p>另外创建/opt/genie作为您的安装目录。</p>


    <h3>(1)设置环境变量</h3>
    <p>genie安装前需要设置环境变量，目的是genie安装过程中可以寻找到依赖包：</p>
    <p>&emsp;$GENIE=/opt/genieGenerator：注意这里是genie源代码位置(存疑)</p>
    <p>&emsp;$ROOTSYS=/opt/root-6.20.04&emsp;：ROOT的安装位置</p>
    
    <p>将下列路径添加到&ensp;LD_LIBRARY_PATH&ensp;:</p>
    <p>&emsp;$GENIE/lib、$ROOTSYS/bin、$/opt/pythia6/libPythia6.so、/opt/libxml2-2.8.0/lib、/opt/log4cpp/lib</p>
    <p>添加方法：&ensp;export LD_LIBRARY_PATH=$GENIE/lib:$LD_LIBRARY_PATH &ensp;&ensp;以此类推</p>


    <p>将下列路径添加到&ensp;PATH&ensp;:</p>
    <p>&emsp;$ROOTSYS/bin、$GENIE/bin</p>
    <p>添加方法：&ensp;export PATH=$ROOTSYS/bin：$GENIE/bin:$PATH </p>

    <p>也可以将上面的环境设置写入~/.bashrc(linux用户)</p>
    

    <h3>(2)配置genie</h3>
    <p>官方给出的配置方法如下：</p>
        <pre>
./configure --prefix=/opt/genie                   ## 安装目录   
--disable-profiler  
--enable-gfortran                                 ## 记得打开gfortran
--with-gfortran-lib=/usr/lib/x86_64-linux-gnu     ## 使用 ldconfig -p | grep libfortran 找到gfortran库位置写上
--disable-lhapdf5 
--enable-lhapdf6 
--disable-validation-tools 
--disable-cernlib   
--enable-lhapdf  
--enable-flux-drivers   
--enable-geom-drivers   
--disable-doxygen   
--enable-test  
--enable-mueloss 
--enable-dylibversion    
--enable-t2k  
--enable-fnal  
--enable-atmo    
--enable-nucleon-decay  
--disable-masterclass  
--disable-debug   
--with-optimiz-level=O2   
--with-pythia6-lib=/opt/pythia6  
--with-lhapdf6-inc=/opt/LHAPDF-6.2.3/include  
--with-lhapdf6-lib=/opt/LHAPDF-6.2.3/lib  
--with-libxml2-inc=/opt/libxml2-2.8.0/include/libxml2  
--with-libxml2-lib=/opt/libxml2-2.8.0/lib    
--with-log4cpp-inc=/opt/log4cpp-1.1.3/include   
--with-log4cpp-lib=/opt/log4cpp-1.1.3/lib
        </pre>
    <p>官网上还有一句话：看起来一切默认就能安装。</p>
    <p>不过我建议最好不要缺少gfortran和inc、lib的路径。</p>

    <h3>(3)编译genie</h3>
    <p>如果上面&ensp;./configure&ensp;没有报错，那么恭喜你已经半只脚踏入成功的大门了，编译只需：</p>
    <p>&emsp;make -j4        </p>
    <p>同样的，这里是4还是其他取决于你的电脑CPU核数</p>

    <h3>(4)安装genie</h3>
    <p>将编译好的文件复制到/opt/genie</p>
    <p>&emsp;make install</p>
    <p>一切顺利？恭喜恭喜！</p> 
    <br>

    <h1>三、genie使用</h1>
    <br>
    <p>留白也是艺术</p>
    <br>
    <p>有时间请罗昊同学为我们讲解！</p>
    <br>



    <h1>四、genie参考网址</h1>
    <ul>
    <li>genie官方主页：<a href="https://root.cern.ch/content/release-62004" target="blank">https://root.cern.ch/content/release-62004</a> </li>
    <li>genie官方安装说明：<a href="https://root.cern.ch/build-prerequisites" target="blank">https://root.cern.ch/build-prerequisites</a> </li>
    <!--
    <li>：<a href="https://root.cern.ch/building-root" target="blank">https://root.cern.ch/building-root</a> </li>
    <li>ROOT使用手册：<a href="https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html" target="blank">https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html</a> </li>
    -->
    
    </ul>



    <h1>五、联系我们</h1>
    <p>赵问问：</p>
    <p>邮箱：zhaoww2013@126.com ; zhaoww1998@outlook.com</p>
    <p>罗昊:</p>
    <p>邮箱：</p>







    <h1 >genie ! </h1>


</body>
</html>
